/*Name: Vigenere.h
  Last Modification: 31/05/10 16:25
  Description: Header de la classe vigenere, algorithme de chiffrement par décalage variable mais cyclique
 de l'alphabet. C'est  un chiffrement symétrique qui a longtemps été réputé inviolable meme si cela s'est révélé
 faux par la suite
  License: GNU GPL v3
    Copyright (C) 2012 G. Bonnoron, P.Brunet, C. Duchene et F. Cornevaux-Juignet

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.*/

#ifndef VIGENERE_H
#define VIGENERE_H

//inclusion des bibliothèques nécessaires au programme
#include<QWidget>
#include<QList>
#include <QString>
#include<QTime>
#include<QLineEdit>
#include <QLabel>
#include<QTextEdit>
#include<QFile>
#include "Vigenere_global.h"
#include "../../algorithme.h"

class Vigenere : public Algorithme
{
public:
    Vigenere();
    QChar changeLettre(QChar lettre,QChar decale,bool dechif);
    void chiffre(bool fich);
    void dechiffre(bool fich);
    QList<QWidget *> affiche();
     Algorithme* maker();
    ~Vigenere();
    QString aide();
    QString nom();
private:
    QString clef;
    void outVigenere(bool fichier);
    QLineEdit *cle;
    QTextEdit *crypter;
  };

#endif // VIGENERE_H
